a. Field of the Invention
The present invention pertains generally to firmware downloading mechanisms and more specifically to remotely preparing downloading instructions for downloading firmware through a controller to a disk drive.
b. Description of the Background
Many storage systems are comprised of a multitude of disk drives. For example, RAID systems are one such type of storage system wherein multiple disk drives are arranged in various manners for performance and redundancy of data. In such systems, many disk drives may be connected to a controller that portions out the data to the individual disk drives according to the redundancy and performance scheme.
During the life of a storage system, which may span several years, improvements may be made to the disk drive components. In particular, improvements or changes to the firmware of the disk drive may be made by the disk drive manufacturer or other entity. Such firmware changes may allow additional commands, may improve reliability, or otherwise enhance performance of the disk drive.
For deployed systems, making changes to disk drive firmware can be a complicated task, particularly for disk drives that do not have a command structure or are not specifically adapted for firmware updates. For example, lower cost disk drives typically do not have a simple command structure for downloading, installing, and running an updated firmware image. Such a process may involve many commands and data transfers that must occur in a specific sequence. To further complicate matters, each manufacturer of disk drives may have a different command sequence required for downloading, and such command sequences may change from model to model of disk drive.
A storage system controller may be capable of communicating and controlling the individual disk drives, but may not be adapted to communicate using the specific protocol required for each model of disk drives from each of the various manufacturers.
It would therefore be advantageous to provide a mechanism whereby firmware downloads and other low level communications to a disk drive may be accomplished with a minimum of complexity and effort on the part of a storage system controller. It would be further advantageous to provide a system and method that may be tested and verified before being executed in the field.